1. Field of the Invention
The present invention relates to configuration of computer add-in cards and more particularly to software configuration of cards for use in the IBM AT and compatible computers.
2. State of the Art
The industry standard architecture (ISA) bus is the most popular expansion standard in the PC industry. This bus architecture requires the allocation of memory and I/O address spaces, direct memory access (DMA) channels and interrupt levels among multiple ISA cards. However, the ISA interface has no defined hardware or software mechanism for allocating these resources. As a result, configuration of ISA cards is typically done with "jumpers" that change the decode maps for memory and I/O space and steer the DMA and interrupt signals to different pins on the bus. Further, system configuration files may need to be updated to reflect these changes. Resolving resource sharing conflicts typically involves shutting off power to the computer, opening the case, unplugging the board, getting the board manual out (if it can be found), changing the jumpers, then reinserting the board, powering up the machine, and repeating the process by trial and error until the system works. For the average user, this configuration process can be unreliable and frustrating.
Alternative bus standards (for example, the Micro-Channel Architecture, or MCA, and the Extended Industry Standard Architecture, or EISA) have hardware and software mechanisms to identify the resources requested by a card and resolve conflicts. These mechanisms are not compatible with the installed base of PCs with ISA card slots. Intel Corporation and Microsoft Corporation, in their Proposal for Plug and Play ISA specification, have jointly proposed a hardware and software mechanism for incorporation in a future generation of ISA cards that enables resolution of conflicts between such cards. The Plug and Play software allocates system resources between Plug and Play ISA cards without user intervention. Where current generation or standard ISA cards co-exist with Plug and Play ISA cards in the same system, however, the configuration solution is incomplete. In this and other respects, workability of the proposed specification depends upon its acceptance as a standard. Such acceptance is not assured, particularly in view of the complexity of the proposed mechanism. In the present-day commodity-like PC market, card vendors are loathe to add to their cards expensive, complicated hardware without some assurance of market success.
The present software board configuration mechanism, like the Plug and Play proposal, eliminates the cost and complexity of conventional jumper blocks and address decoding PALs, enabling a functional system to be configured without user intervention. The interface board can be reconfigured upon system reset, eliminating the frustrations associated with manual configuration and providing additional flexibility. Furthermore, unlike Plug and Play, the present software board configuration mechanism is not dependent upon adoption of the same mechanism by other boards.